package cn.doitedu.operate

import org.apache.log4j.{Level, Logger}
import org.apache.spark.sql.{DataFrame, SparkSession}

/**
 * @Date 22.4.10
 * @Created by HANGGE
 * @Description
 */
object C01_SQL_Operate {
  Logger.getLogger("org").setLevel(Level.ERROR)
  def main(args: Array[String]): Unit = {
    // 1 获取会话
    val session01 = SparkSession.builder()
      .appName(this.getClass.getSimpleName)
      .master("local[*]")
      .getOrCreate()

    // 2 加载数据   创建DataFrame
    val df: DataFrame = session01.read.option("header" , true).option("inferSchema",true).csv("file:///D://code/doit30_spark_sql/data/csv/Teacher2.csv")

    // 3 创建视图
    // 1)  临时视图   当前session中有效
 //  df.createTempView("tb_teacher")
    df.createOrReplaceGlobalTempView("tb_teacher")

    // 4  使用SQL分析数据    输出 展示
    session01.sql(
      """
        |select
        |*
        |from
        |global_temp.tb_teacher
        |""".stripMargin).show()
    // 创建新的会话

    // 操作另一个session的会话数据
   val session02 = session01.newSession()
    session02.sql(
      """
        |select
        |gender ,
        |avg(sal)
        |from
        |global_temp.tb_teacher
        |group by gender
        |""".stripMargin).show()

  }

}
